有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在浏览器中跳过浏览页面的历史记录

由于一些安全限制,要求访问的页面不应列在浏览器的历史记录中

因此,这些页面根本不需要显示在历史中

我尝试过以下方法,但失败了

解决方案1:

1. <%
2. session.invalidate();
3. response.setHeader("Cache-Control","no-cache");
4. response.setHeader("Cache-Control","no-store");
5. response.setDateHeader("Expires", 0);
6. response.sendRedirect("home.jsp");
7. %>

解决方案2:

<%
Response.Cache.SetExpires(DateTime.Parse(DateTime.Now.ToString()))
Response.Cache.SetCacheability(HttpCacheability.Private)
Response.Cache.SetNoStore()
Response.AppendHeader("Pragma", "no-cache")
%>

解决方案3:

<body onload="history.forward()">

解决方案4:

<%
response.setDateHeader("Last-Modified", System.currentTimeMillis());
%>

与Firefox一样,Firefox中也有功能工具->;启动不存储任何会话数据的私人浏览。JavaScript可以做些什么来实现这一点吗


共 (2) 个答案

  1. # 1 楼答案

    在安全问题上,你不能依赖客户端。所有浏览器都有不同的历史实现。您应该依赖服务器端解决方案

  2. # 2 楼答案

    这种行为由浏览器而不是服务器控制,因此您的选择非常有限

    实现这一点的一种方法是在站点a上创建一个页面,其中只包含一个iframe,用于加载您不希望在浏览器历史记录中看到的站点内容

    但它仍然很脆弱。用户可以使用“在新窗口/选项卡中打开链接”来打开外壳

    如果您可以访问客户端,一种解决方案是安装在“设置”中关闭历史记录的浏览器,并限制对浏览器首选项的访问,以便用户无法更改此选项